/*
 * VideoRender.h
 *
 *  Created on: 2017年3月16日
 *      Author: chuanjiang.zh
 */

#ifndef VIDEORENDER_H_
#define VIDEORENDER_H_

#include "MediaFormat.h"
#include "Ffmpeg.h"

namespace av
{

class DLLEXPORT VideoRender
{
public:
	virtual ~VideoRender() {}

	virtual int create(void* hwnd) =0;

	virtual void destroy() =0;

	virtual int open(const MediaFormat& fmt) =0;
	virtual void close() =0;
	virtual bool isOpen() =0;

	virtual int play() =0;
	virtual int pause() =0;
	virtual void stop() =0;

	virtual int getState() =0;


	virtual int write(AVFrame* frame) =0;

	virtual void flush() =0;


	virtual int setRatio(int width, int height) =0;

	virtual void setVisible(bool visible) =0;

};


} /* namespace av */

#endif /* VIDEORENDER_H_ */
